<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 原型链式继承
        // function ClassB() {
        //     this.name = "p7B班"
        //     this.type = "小实训"
        // }
        // ClassB.prototype.say = function() {
        //     console.log('我们要毕业了')
        // }
        // function Student(name) {
        //     this.sname = name
        // }
        // Student.prototype = new ClassB()

        // Student.prototype.constructor = Student
        // var student = new Student('赵雨')
        // console.log(student)
        // 构造函数继承
        var obj = {}
        function ClassB(c, s) {
            this.name = c
            this.type = s
        }

        // ClassB.prototype.say = function() {
        //     console.log('我们要毕业了')
        // }
        function Student() {
            // ClassB.call(this, "p7B班", "小实训")
            // ClassB.apply(this, ["p7B班", "小实训"])
            // console.log()
            ClassB.bind(this)("p7B班", "小实训")
           
        }

        var student = new Student()
        console.log(student, obj)

        // 改变this指向的方法都有哪些 
        // 1、call 2、apply 3、bind
        // call的第一个参数是一个变量 也就是要改成的this指向 其他参数以散落的形式传递给执行的函数
        // apply的第一个参数是一个变量 也就是要改成的this指向 但是其他参数要以数组的形式传递给执行的函数
        // bind方法返回一个函数 返回的函数时调用bind方法的函数本身 bind的参数是要改成的this指向
    </script>
</body>
</html>